ITP001 Axioms: ITP108^5.ax


%------------------------------------------------------------------------------
% File     : ITP108^5 : TPTP v8.2.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : fmsp^2.ax [Gau20]
%          : HL4108^5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   10 (   0 unt;   1 typ;   0 def)
%            Number of atoms       :  317 (   0 equ;   0 cnn)
%            Maximal formula atoms :   58 (  31 avg)
%            Number of connectives :  559 (   0   ~;   0   |;   4   &; 530   @)
%                                         (   1 <=>;  24  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   27 (  22 avg; 530 nst)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    3 (   3   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   35 (  35 usr;  34 con; 0-3 aty)
%            Number of variables   :   50 (   3   ^  47   !;   0   ?;  50   :)
% SPC      : TH0_SAT_NEQ_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2Efmsp_2EFMSP,type,
    c_2Efmsp_2EFMSP: del > del > del > $i ).

thf(mem_c_2Efmsp_2EFMSP,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del] : ( mem @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ ( arr @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) @ ( arr @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) @ ( arr @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( arr @ ( ty_2Esptree_2Espt @ A_27c ) @ bool ) ) ) ) ) ).

thf(ax_thm_2Efmsp_2EFMSP__def,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ! [V2fm: $i] :
              ( ( mem @ V2fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
             => ! [V3sp: $i] :
                  ( ( mem @ V3sp @ ( ty_2Esptree_2Espt @ A_27c ) )
                 => ( ( p @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) @ V2fm ) @ V3sp ) )
                  <=> ! [V4a: $i] :
                        ( ( mem @ V4a @ A_27a )
                       => ! [V5n: tp__ty_2Enum_2Enum] :
                            ( ( p @ ( ap @ ( ap @ V0AN @ V4a ) @ ( inj__ty_2Enum_2Enum @ V5n ) ) )
                           => ( p @ ( ap @ ( ap @ ( ap @ ( c_2Eoption_2EOPTREL @ A_27b @ A_27c ) @ V1BC ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ V2fm ) @ V4a ) ) @ ( ap @ ( ap @ ( c_2Esptree_2Elookup @ A_27c ) @ ( inj__ty_2Enum_2Enum @ V5n ) ) @ V3sp ) ) ) ) ) ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__FDOM,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( p @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) @ ( arr @ A_27a @ bool ) @ ( arr @ ty_2Enum_2Enum @ bool ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ A_27a @ ty_2Enum_2Enum @ bool @ bool ) @ V0AN ) @ ( c_2Emin_2E_3D @ bool ) ) ) @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) ) @ ( c_2Esptree_2Edomain @ A_27c ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__FEMPTY,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( p @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) @ ( c_2Efinite__map_2EFEMPTY @ A_27a @ A_27b ) ) @ ( c_2Esptree_2ELN @ A_27c ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__FUPDATE,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( ( p @ ( ap @ ( c_2Etransfer_2Ebi__unique @ A_27a @ ty_2Enum_2Enum ) @ V0AN ) )
           => ( p
              @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) @ ( arr @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) @ ( arr @ ( ty_2Epair_2Eprod @ ty_2Enum_2Enum @ A_27c ) @ ( ty_2Esptree_2Espt @ A_27c ) ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ ( ty_2Epair_2Eprod @ ty_2Enum_2Enum @ A_27c ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) ) @ ( ap @ ( ap @ ( c_2Etransfer_2EPAIR__REL @ A_27a @ ty_2Enum_2Enum @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) ) @ ( c_2Efinite__map_2EFUPDATE @ A_27a @ A_27b ) )
                @ ( lam @ ( ty_2Esptree_2Espt @ A_27c )
                  @ ^ [V2sp: $i] :
                      ( ap @ ( c_2Epair_2EUNCURRY @ ty_2Enum_2Enum @ A_27c @ ( ty_2Esptree_2Espt @ A_27c ) )
                      @ ( lam @ ty_2Enum_2Enum
                        @ ^ [V3n: $i] :
                            ( lam @ A_27c
                            @ ^ [V4v: $i] : ( ap @ ( ap @ ( ap @ ( c_2Esptree_2Einsert @ A_27c ) @ V3n ) @ V4v ) @ V2sp ) ) ) ) ) ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__bitotal,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( ( ( p @ ( ap @ ( c_2Etransfer_2Ebitotal @ A_27a @ ty_2Enum_2Enum ) @ V0AN ) )
              & ( p @ ( ap @ ( c_2Etransfer_2Ebitotal @ A_27b @ A_27c ) @ V1BC ) )
              & ( p @ ( ap @ ( c_2Etransfer_2Ebi__unique @ A_27a @ ty_2Enum_2Enum ) @ V0AN ) ) )
           => ( p @ ( ap @ ( c_2Etransfer_2Ebitotal @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__FORALL,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( ( ( p @ ( ap @ ( c_2Etransfer_2Ebitotal @ A_27a @ ty_2Enum_2Enum ) @ V0AN ) )
              & ( p @ ( ap @ ( c_2Etransfer_2Ebitotal @ A_27b @ A_27c ) @ V1BC ) )
              & ( p @ ( ap @ ( c_2Etransfer_2Ebi__unique @ A_27a @ ty_2Enum_2Enum ) @ V0AN ) ) )
           => ( p @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( arr @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ bool ) @ ( arr @ ( ty_2Esptree_2Espt @ A_27c ) @ bool ) @ bool @ bool ) @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) @ bool @ bool ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( c_2Emin_2E_3D @ bool ) ) ) @ ( c_2Emin_2E_3D @ bool ) ) @ ( c_2Ebool_2E_21 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) ) @ ( c_2Ebool_2E_21 @ ( ty_2Esptree_2Espt @ A_27c ) ) ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__FUNION,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( p @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) @ ( arr @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) @ ( arr @ ( ty_2Esptree_2Espt @ A_27c ) @ ( ty_2Esptree_2Espt @ A_27c ) ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) ) @ ( c_2Efinite__map_2EFUNION @ A_27a @ A_27b ) ) @ ( c_2Esptree_2Eunion @ A_27c ) ) ) ) ) ).

thf(conj_thm_2Efmsp_2EFMSP__FDOMSUB,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0AN: $i] :
      ( ( mem @ V0AN @ ( arr @ A_27a @ ( arr @ ty_2Enum_2Enum @ bool ) ) )
     => ! [V1BC: $i] :
          ( ( mem @ V1BC @ ( arr @ A_27b @ ( arr @ A_27c @ bool ) ) )
         => ( ( p @ ( ap @ ( c_2Etransfer_2Ebi__unique @ A_27a @ ty_2Enum_2Enum ) @ V0AN ) )
           => ( p @ ( ap @ ( ap @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) @ ( arr @ A_27a @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) @ ( arr @ ty_2Enum_2Enum @ ( ty_2Esptree_2Espt @ A_27c ) ) ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) @ ( ap @ ( ap @ ( c_2Etransfer_2EFUN__REL @ A_27a @ ty_2Enum_2Enum @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Esptree_2Espt @ A_27c ) ) @ V0AN ) @ ( ap @ ( ap @ ( c_2Efmsp_2EFMSP @ A_27a @ A_27b @ A_27c ) @ V0AN ) @ V1BC ) ) ) @ ( c_2Efinite__map_2Efdomsub @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ecombin_2EC @ ty_2Enum_2Enum @ ( ty_2Esptree_2Espt @ A_27c ) @ ( ty_2Esptree_2Espt @ A_27c ) ) @ ( c_2Esptree_2Edelete @ A_27c ) ) ) ) ) ) ) ).

%------------------------------------------------------------------------------